﻿using System;
using System.Collections.Generic;
using TheBullysStore.Models.ModuloAdministracion.AreaComun;
using TheBullysStore.Models.ModuloAdministracion.Departamento;

namespace TheBullysStore.Models.ModuloAdministracion.Edificio
{

    public class EdificioFacade
    {
        EdificioService edificioService = new EdificioService();
        AreaComunService areacomunService = new AreaComunService();
        DepartamentoService departamentoService = new DepartamentoService();
        

        public string Registraredificio(EdificioBean edificio)
        {
            return edificioService.Registraredificio(edificio);
        }

        public Boolean Existeedificio(EdificioBean edificio)
        {
            return edificioService.Existeedificio(edificio);
        }

        public EdificioBean AtributosEdificio(EdificioBean edificio) { 
            return edificioService.AtributosEdificio(edificio);
        }

        public List<EdificioBean> Listaredificio(EdificioBean edificio)
        {
            return edificioService.Listaredificio(edificio);
        }

        public List<EdificioBean> ListarEdificioNulo(EdificioBean edificio)
        {
            return edificioService.ListarEdificioNulo(edificio);
        }

        public string Modificaredificio(EdificioBean edificio)
        {
            EdificioBean auxiliar = AtributosEdificio(edificio);
            if (edificio.NumPisos < auxiliar.NumPisos) {
                departamentoService.EliminardepartamentoPiso(edificio);
                areacomunService.EliminarareacomunPiso(edificio);
            }
            if (edificio.NumSotanos < auxiliar.NumSotanos) {
                departamentoService.EliminardepartamentoSotano(edificio);
                areacomunService.EliminarareacomunSotano(edificio);
            }
            return edificioService.Modificaredificio(edificio);
        }

        public string Eliminaredificio(EdificioBean edificio)
        {
            
            areacomunService.Eliminarareacomun(edificio);
            departamentoService.Eliminardepartamento(edificio);
            return edificioService.Eliminaredificio(edificio);
        }


        public List<int> Listarpiso(EdificioBean edificio)
        {
            return edificioService.Listarpiso(edificio);
        }
    }
}